
* /////////////////////////////////////////////////////////////////////////////////////
* Sintaxe do artigo “Quando a democracia divide o eleitorado: o voto nas * eleições 
* presidenciais de 2022”, publicado na publicado na Brazilian Political Science Review. 
* /////////////////////////////////////////////////////////////////////////////////////
* 
* Mario Fuks e Gabriel Avila Casalecchi
* 
* Data: 08/05/2024
* 
* O artigo utiliza os seguintes bancos de dados: 
*
* 1) Barômetro das Américas, Brasil, 2006
* 2) Barômetro das Américas, Brasil, 2010
* 3) Barômetro das Américas, Brasil, 2014
* 4) Estudo Eleitoral Brasileiro (ESEB), 2018/19
* 5) Estudo Eleitoral Brasileiro (ESEB), 2022
* 6) Clivagens no Brasil, 2023 (clivagens.dta)
*
* A sintaxe - recodificação e análises - estão organizadas por bancos de dados. 
*
* Existe um livro de códigos (disponibilizado pela BPSR) explicando cada variável.
* Recomendamos fortemente que antes de replicar as análises seja feita uma leitura 
* do livro de códigos para melhor compreensão das variáveis e suas recodificações.
*
* Todas as análises foram realizadas utilizados o software Stata, versão 14. 

* //////////////////////////////////////////////////////////////////////////////
* 1. Análises relativas ao banco "Clivagens do Brasil, 2023"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "clivagens.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\clivagens.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo. 

* Criação das variáveis ********************************************************

* Separação dos poderes (separation, sepsoft e sephard) ************************
*
* Criando primeiro a variável contínua:
recode P51 (11=.) (12=.), gen (separation2)
gen separation = 10 - separation2
*
* Observação: a escala da variável foi invertida para padronizar as atitudes na mesma
* direção, sempre do manos até o mais democrático. 
*
* Binarizando a variável: de 0 a 5 = não democrata; 6 a 10 = democrata
recode separation (0/5=0) (6/10=1), gen (sepsoft)

* Binarizando a variável: de 0 a 9 = não democrata; 10 = democrata
recode separation (0/9=0) (10=1), gen (sephard)

* Eleição como método (electoral, elecsoft e elechard) *************************
*
* Criando primeiro a variável contínua:
recode P52 (11=.) (12=.), gen (electoral)
*
* Binarizando a variável: de 0 a 5 = não democrata; 6 a 10 = democrata
recode electoral (0/5=0) (6/10=1), gen (elecsoft)
*
* Binarizando a variável: de 0 a 9 = não democrata; 10 = democrata
recode electoral (0/9=0) (10=1), gen (elechard)

* Participação política (part, partsoft e parthard) ****************************
*
* Criando primeiro a variável contínua:
recode P53 (11=.) (12=.), gen (part)
*
* Binarizando a variável: de 0 a 5 = não democrata; 6 a 10 = democrata
recode part (0/5=0) (6/10=1), gen (partsoft)
*
* Binarizando a variável: de 0 a 9 = não democrata; 10 = democrata
recode part (0/9=0) (10=1), gen (parthard)

* Estado de direito (rule, rulesoft e rulehard) ********************************
*
* Criando primeiro a variável contínua:
recode P54 (11=.) (12=.), gen (rule)
*
* Binarizando a variável: de 0 a 5 = não democrata; 6 a 10 = democrata
recode rule (0/5=0) (6/10=1), gen (rulesoft)
*
* Binarizando a variável: de 0 a 9 = não democrata; 10 = democrata
recode rule (0/9=0) (10=1), gen (rulehard)

* Direitos das minorias (majority, majsoft e majhard) **************************
*
* Criando primeiro a variável contínua:
recode P55 (11=.) (12=.), gen (majority2)
gen majority = 10 - majority2
*
* Observação: a escala da variável foi invertida para padronizar as atitudes na mesma
* direção, sempre do manos até o mais democrático. 
*
* Binarizando a variável: de 0 a 5 = não democrata; 6 a 10 = democrata
recode majority (0/5=0) (6/10=1), gen (majsoft)
*
* Binarizando a variável: de 0 a 9 = não democrata; 10 = democrata
recode majority (0/9=0) (10=1), gen (majhard)

* Índice de democratismo *******************************************************
*
* O índice é composto pela soma simples das cinco variáveis contínuas anteriores
*
* Indicador com variáveis contínuas (indexdem)
gen indexdem = separation + electoral + part + rule + majority
*
* Indicador com variáveis binárias (indexdemb)
gen indexdemb = sepsoft + elecsoft + partsoft + rulesoft + majsoft

* Sexo (homem) *****************************************************************
recode P6 (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Idade (age) ******************************************************************
recode P8 (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Escolaridade (education) *****************************************************
recode P12 (1/4=0) (5/6=1), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode P13 (1=0) (2/3=1) (4/8=2) (9/10=3), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Avaliação da economia (avecon) ***********************************************
recode P65 (1=2) (2=1) (3=0) (4/5=.), gen (avecon)
label define avecon 0 "Worse" 1 "Equal" 2 "Better"
label values avecon avecon

* Identificação com o PT (petista) *********************************************
recode P17 (1=1) (2/18=0) (.=0), gen (petista)
label define petista 0 "No" 1 "Petista"
label values petista petista

* Voto no 2o turno para presidente (votolula) **********************************
recode P64 (1=0) (2=1) (3/6=.), gen (votolula)
label define votolula 0 "Bolsonaro" 1 "Lula"
label values votolula votolula

* Apoio aos atos golpistas do 8 de janeiro (apoio8jan) *************************
recode P56 (1=0) (2=0) (3=1) (4/5=.), gen (apoio8jan)
label define apoio8jan 0 "Não apoia" 1 "Apoia"
label values apoio8jan apoio8jan

* Análises *********************************************************************

* Análises descritivas da Tabela 1 do artigo:
mean separation 
mean electoral 
mean part 
mean rule 
mean majority 

* A Tabela 2 do artigo é composta de 5 regressões Logit. 
* A sintaxe das regressões são as seguintes:
logit votolula separation man i.age education i.religion i.avecon petista
logit votolula electoral man i.age education i.religion i.avecon petista
logit votolula part man i.age education i.religion i.avecon petista
logit votolula rule man i.age education i.religion i.avecon petista
logit votolula majority man i.age education i.religion i.avecon petista

* A Figura 3 apresenta os valores preditos do índice de democratismo no voto em 
* Lula no 2o turno das eleições. A Sintaxe da figura é a seguinte:
logit votolula indexdemb man i.age education i.religion i.avecon petista
margins, at(indexdemb=(0(1)5))
marginsplot, recast(line) plot1opts(lcolor(gs8)) ciopt(color(grey)) recastci(rarea)
*
*OBS: o formato da figura foi editado diretamente na ferramente de edição de figuras do Stata

* A Tabela A02 do apêndice é composta de 5 regressões Logit.
* A sintaxe das regressões são as seguintes:
logit votolula sepsoft man i.age education i.religion i.avecon petista
logit votolula elecsoft man i.age education i.religion i.avecon petista
logit votolula partsoft man i.age education i.religion i.avecon petista
logit votolula rulesoft man i.age education i.religion i.avecon petista
logit votolula majsoft man i.age education i.religion i.avecon petista

* A Tabela A03 do apêndice é composta de 5 regressões Logit.
* A sintaxe das regressões são as seguintes:
logit votolula sephard man i.age education i.religion i.avecon petista
logit votolula elechard man i.age education i.religion i.avecon petista
logit votolula parthard man i.age education i.religion i.avecon petista
logit votolula rulehard man i.age education i.religion i.avecon petista
logit votolula majhard man i.age education i.religion i.avecon petista

* A Tabela A04 do apêndice é composta por uma regressão Logit.
* A sintaxe da regressão é a seguintes:
logit votolula apoio8jan man i.age education i.religion i.avecon petista

* //////////////////////////////////////////////////////////////////////////////
* 2. Análises relativas ao banco "Barômetro das Américas, Brasil, 2010"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "BA2010.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\clivagens.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo.

* Criação das variáveis ********************************************************

* Separação dos poderes (separation) *******************************************
recode jc15a (1=0) (2=1), gen (separation)

* Eleições como método de escolha (electoral) **********************************
recode aut1 (1=0) (2=1), gen (electoral)

* Participação política (part) *************************************************
gen part = e5

* Estado de direito (rule) *****************************************************
recode aoj8 (1=1) (2=0), gen (rule)

* Homem (man) ******************************************************************
recode q1 (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Faixa etária (age) ***********************************************************
recode q2 (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Ensuno superior (education) **************************************************
recode ed (0/11=0) (12/17=1), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode q3c (1=0) (2=1) (3=2) (5=1) (6/10=2) (4=3) (11=3) (12=2), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Avaliação da economia (avecon) ***********************************************
recode soct2 (1=2) (2=1) (3=0), gen (avecon)
label define avecon 0 "Worse" 1 "Equal" 2 "Better"
label values avecon avecon

* Identificação com o PT (petista) *********************************************
recode vb11 (1501=1) (1502/1514=0) (.=0), gen (petista)
label define petista 0 "No" 1 "Petista"
label values petista petista

* Intenção de voto no candidato/governo do Presidente **************************
recode vb20 (1=.) (2=1) (3=0) (4=.), gen (votopt)
label define votopt 0 "Oposition" 1 "Govern"
label values votopt votopt

* Análises *********************************************************************

* A Tabela 3 do artigo é composta de 4 regressões Logit. 
* A sintaxe das regressões são as seguintes:
logit votopt separation man i.age education i.religion i.avecon petista
logit votopt electoral man i.age education i.religion i.avecon petista
logit votopt part man i.age education i.religion i.avecon petista
logit votopt rule man i.age education i.religion i.avecon petista

* //////////////////////////////////////////////////////////////////////////////
* 3. Análises relativas ao banco "Barômetro das Américas, Brasil, 2006"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "BA2006.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\clivagens.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo.

* Criação das variáveis ********************************************************

* Sepaação dos poderes (separation) ********************************************
recode JC15 (1=0) (2=1), gen (separation)

* Eleição como método (electoral) **********************************************
recode AUT1 (1=0) (2=1), gen (electoral)

* Participação política (part) *************************************************
gen part = E5

* Homem (man) ******************************************************************
recode Q1 (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Faixa Etária (age) ***********************************************************
recode Q2 (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Ensino superior (education) **************************************************
recode VS2 (0/15=0) (16/21=1), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode VS18 (1=2) (2=1) (3=1) (4/7=2) (8=0) (9/11=2) (12/13=3), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Avaliação da economia (avecon) ***********************************************
recode SOCT2 (1=2) (2=1) (3=0), gen (avecon)
label define avecon 0 "Worse" 1 "Equal" 2 "Better"
label values avecon avecon

* Identificação com o PT (petista) *********************************************
recode SEP2 (11/12=0) (13=1) (14/109=0) (.=0), gen (petista)
label define petista 0 "No" 1 "Petista"
label values petista petista

* Voto para presidente *********************************************************
recode BRAVB4 (0=.) (1=1) (2=0) (3/99=.), gen (votopt)
label define votopt 0 "Oposition" 1 "Lula"
label values votopt votopt

* Análises *********************************************************************

* A Tabela A05 do apêndice é composta de 3 regressões Logit.
* A sintaxe das regressões são as seguintes:
logit votopt separation man i.age education i.religion i.avecon petista
logit votopt electoral man i.age education i.religion i.avecon petista
logit votopt part man i.age education i.religion i.avecon petista

* //////////////////////////////////////////////////////////////////////////////
* 4. Análises relativas ao banco "Barômetro das Américas, Brasil, 2014"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "BA2014.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\BA2014.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo.

* Criação das variáveis ********************************************************

* Separação dos poderes (separation) *******************************************
recode jc15a (1=0) (2=1), gen (separation)

* Participação política (part) *************************************************
gen part = e5

* Estado de direito (rule) *****************************************************
gen rule = 11 - e16

* Homem (man) ******************************************************************
recode q1 (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Faixa etária (age) ***********************************************************
recode q2 (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Ensino superior (education) **************************************************
recode ed (0/11=0) (12/17=1), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode q3c (1=0) (2=1) (3=2) (5=1) (6/10=2) (4=3) (11=3) (12=2) (1501=2), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Avaliação da economia (avecon) ***********************************************
recode soct2 (1=2) (2=1) (3=0), gen (avecon)
label define avecon 0 "Worse" 1 "Equal" 2 "Better"
label values avecon avecon

* Identificação com o PT (petista) *********************************************
recode vb11 (1501=1) (1502/1577=0) (.c=0), gen (petista)
label define petista 0 "No" 1 "Petista"
label values petista petista

* Intenção de voto no candidato/governo do Presidente **************************
recode vb20 (1=.) (2=1) (3=0) (4=.), gen (votopt)
label define votopt 0 "Oposition" 1 "Govern"
label values votopt votopt

* Análises *********************************************************************

* A Tabela A06 do apêndice é composta de 3 regressões Logit.
* A sintaxe das regressões são as seguintes:
logit votopt separation man i.age education i.religion i.avecon petista
logit votopt part man i.age education i.religion i.avecon petista
logit votopt rule man i.age education i.religion i.avecon petista

* //////////////////////////////////////////////////////////////////////////////
* 5. Análises relativas ao banco "Barômetro das Américas, Brasil, 2018/19"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "BA2018.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\BA2018.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo.

* Criação das variáveis ********************************************************

* Separação dos poderes (separation) *******************************************
recode jc15a (1=0) (2=1), gen (separation)

* Homem (man) ******************************************************************
recode q1 (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Faixa etária (age) ***********************************************************
recode q2 (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Ensino superior (education) **************************************************
recode ed (0/11=0) (12/17=1), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode q3c (1=0) (2=1) (3=2) (5=1) (6/10=2) (4=3) (11=3) (12=2) (1501=2) (77=.), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Voto *************************************************************************
recode vb3n (1501=0) (1502=1) (0=.) (97=.) (1503/1577=.), gen (votopt)
label define votopt 0 "Bolsonaro" 1 "Haddad"
label values votopt votopt

* Análises *********************************************************************

* A Tabela A07 do apêndice possui uma coluna com os dados do BA2018
* A sintaxe da regressão dessa coluna é a seguinte:
logit votopt separation man i.age education i.religion

* //////////////////////////////////////////////////////////////////////////////
* 6. Análises relativas ao banco "Estudo Eleitoral Brasileiro - ESEB, 2018"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "ESEB2018.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\ESEB2018.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo.

* Criação das variáveis ********************************************************

* Minorias (minoria) ***********************************************************
recode Q502 (4/5=1) (0/3=0) (7/8=.), gen (minoria)
label define minoria 0 "Não apoia" 1 "Apoia minorias"
label values minoria minoria

* Democracia sem partidos (sempart) ********************************************
recode P9 (1=1) (2=0) (8/9=.), gen (sempart)
label define sempart 0 "Existe democracia sem partidos" 1 "Não existe democracia sem partidos"
label values sempart sempart

* Líder forte (liderforte) *****************************************************
recode P1002 (3/5=0) (1/2=1) (8/9=.), gen (liderforte)
label define liderforte 0 "Não apoia" 1 "Apoia líder forte"
label values liderforte liderforte

* Homem (man) ******************************************************************
recode D2_SEXO (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Faixa etária (age) ***********************************************************
recode D1A_ID (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Ensino superior (education) **************************************************
recode D3_ESCOLA (1/7=0) (8/9=1), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode D10 (3=0) (1/2=2) (4=2) (5=1) (6/10=2) (4=3) (96/97=3) (98/102=.), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Voto no 2 turno das eleições *************************************************
recode Q12P2_B (1=1) (2=0) (50/99=.), gen (votopt)
label define votopt 0 "Bolsonaro" 1 "Haddad"
label values votopt votopt

* Análises *********************************************************************

* A Tabela A07 do apêndice é composta de 3 regressões logit desse banco.
* A sintaxe das regressões são as seguintes:
logit votopt minoria man i.age education i.religion
logit votopt sempart man i.age education i.religion
logit votopt liderforte man i.age education i.religion

* //////////////////////////////////////////////////////////////////////////////
* 7. Análises relativas ao banco "Estudo Eleitoral Brasileiro - ESEB, 2022"
* //////////////////////////////////////////////////////////////////////////////

* Em primeiro lugar, é necessário carregar o banco "ESEB2022.dta" no Stata 14
* O comando para abrir o banco é: use "DIRETÓRIO\ESEB2022.dta", clear
* O "DIRETÓRIO" é a pasta em que o banco de dados "clivagens.dta" foi salvo.

* Criação das variáveis ********************************************************

* Rejeita golpe em caso de instabilidade (coups) *******************************
recode Q30c (1=0) (2=1) (97/99=.), gen (coups)

* Democracia sem partidos/Congresso (dempart) **********************************
recode Q29 (1=1) (2=0) (97/99=.), gen (dempart)

* Sexo (man) *******************************************************************
recode D02 (1=1) (2=0), gen (man)
label define man 0 "Woman" 1 "Man"
label values man man

* Faixa etária (age) ***********************************************************
recode D01A_IDADE (16/25=0) (26/65=1) (66/100=2), gen (age)
label define age 0 "16 a 25" 1 "26 a 65" 2 "66 or more"
label values age age

* Ensino Superior (education) **************************************************
recode D03 (1/8=0) (9/10=1) (99=.), gen (education)
label define education 0 "No" 1 "Higher education"
label values education education

* Religião (religion) **********************************************************
recode D10 (3=0) (1/2=2) (4=2) (5=1) (6/10=2) (4=3) (96/97=3) (98/102=.), gen (religion)
label define religion 0 "Catholic" 1 "Evangelical" 2 "Others" 3 "Without religion"
label values religion religion

* Voto no 2o turno (votopt) ****************************************************
recode Q10P2b (1=0) (2=1) (50/98=.), gen (votopt)
label define votopt 0 "Bolsonaro" 1 "Lula"
label values votopt votopt

* Análises *********************************************************************

* A Tabela A08 do apêndice é composta de 2 regressões logit desse banco.
* A sintaxe das regressões são as seguintes:
logit votopt coups man i.age education i.religion
logit votopt dempart man i.age education i.religion






